home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 49
/
Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso
/
-screenplay-
/
otherstuff
/
inform_lib610
/
grammar.h
< prev
next >
Wrap
Text File
|
1999-11-29
|
17KB
|
395 lines
! ----------------------------------------------------------------------------
! GRAMMAR: Grammar table entries for the standard verbs library.
!
! Supplied for use with Inform 6 Serial number 991106
! Release 6/10
! (c) Graham Nelson 1993, 1994, 1995, 1996, 1997, 1998, 1999
! but freely usable (see manuals)
! ----------------------------------------------------------------------------
! The "meta-verbs", commands to the game rather than in the game, come first:
! ----------------------------------------------------------------------------
System_file;
Verb meta 'score'
* -> Score;
Verb meta 'fullscore' 'full'
* -> FullScore
* 'score' -> FullScore;
Verb meta 'q//' 'quit' 'die'
* -> Quit;
Verb meta 'restore'
* -> Restore;
Verb meta 'restart'
* -> Restart;
Verb meta 'verify'
* -> Verify;
Verb meta 'save'
* -> Save;
Verb meta 'script' 'transcript'
* -> ScriptOn
* 'off' -> ScriptOff
* 'on' -> ScriptOn;
Verb meta 'noscript' 'unscript'
* -> ScriptOff;
Verb meta 'superbrief' 'short'
* -> LMode3;
Verb meta 'verbose' 'long'
* -> LMode2;
Verb meta 'brief' 'normal'
* -> LMode1;
Verb meta 'pronouns' 'nouns'
* -> Pronouns;
Verb meta 'notify'
* 'on' -> NotifyOn
* 'off' -> NotifyOff;
Verb meta 'version'
* -> Version;
#IFNDEF NO_PLACES;
Verb meta 'places'
* -> Places;
Verb meta 'objects'
* -> Objects;
#ENDIF;
! ----------------------------------------------------------------------------
! Debugging grammar
! ----------------------------------------------------------------------------
#ifdef DEBUG;
Verb meta 'trace'
* -> TraceOn
* number -> TraceLevel
* 'on' -> TraceOn
* 'off' -> TraceOff;
Verb meta 'actions'
* -> ActionsOn
* 'on' -> ActionsOn
* 'off' -> ActionsOff;
Verb meta 'routines' 'messages'
* -> RoutinesOn
* 'on' -> RoutinesOn
* 'off' -> RoutinesOff;
Verb meta 'timers' 'daemons'
* -> TimersOn
* 'on' -> TimersOn
* 'off' -> TimersOff;
Verb meta 'changes'
* -> ChangesOn
* 'on' -> ChangesOn
* 'off' -> ChangesOff;
Verb meta 'recording'
* -> CommandsOn
* 'on' -> CommandsOn
* 'off' -> CommandsOff;
Verb meta 'replay'
* -> CommandsRead;
Verb meta 'random'
* -> Predictable;
Verb meta 'purloin'
* multi -> XPurloin;
Verb meta 'abstract'
* noun 'to' noun -> XAbstract;
Verb meta 'tree'
* -> XTree
* noun -> XTree;
Verb meta 'goto'
* number -> Goto;
Verb meta 'gonear'
* noun -> Gonear;
Verb meta 'scope'
* -> Scope
* noun -> Scope;
Verb meta 'showverb'
* special -> Showverb;
Verb meta 'showobj'
* -> Showobj
* multi -> Showobj;
#endif;
! ----------------------------------------------------------------------------
! And now the game verbs.
! ----------------------------------------------------------------------------
Verb 'take' 'carry' 'hold'
* multi -> Take
* 'off' worn -> Disrobe
* multiinside 'from' noun -> Remove
* multiinside 'off' noun -> Remove
* 'inventory' -> Inv;
Verb 'get' * 'out'/'off'/'up' -> Exit
* multi -> Take
* 'in'/'into'/'on'/'onto' noun -> Enter
* 'off' noun -> GetOff
* multiinside 'from' noun -> Remove;
Verb 'pick'
* 'up' multi -> Take
* multi 'up' -> Take;
Verb 'stand'
* -> Exit
* 'up' -> Exit
* 'on' noun -> Enter;
Verb 'remove'
* held -> Disrobe
* multi -> Take
* multiinside 'from' noun -> Remove;
Verb 'shed' 'doff' 'disrobe'
* held -> Disrobe;
Verb 'wear' 'don'
* held -> Wear;
Verb 'put'
* multiexcept 'in'/'inside'/'into' noun
-> Insert
* multiexcept 'on'/'onto' noun -> PutOn
* 'on' held -> Wear
* 'down' multiheld -> Drop
* multiheld 'down' -> Drop;
Verb 'insert'
* multiexcept 'in'/'into' noun -> Insert;
Verb 'empty'
* noun -> Empty
* 'out' noun -> Empty
* noun 'out' -> Empty
* noun 'to'/'into'/'on'/'onto' noun
-> EmptyT;
Verb 'transfer'
* noun 'to' noun -> Transfer;
Verb 'drop' 'throw' 'discard'
* multiheld -> Drop
* multiexcept 'in'/'into'/'down' noun
-> Insert
* multiexcept 'on'/'onto' noun -> PutOn
* held 'at'/'against'/'on'/'onto' noun
-> ThrowAt;
Verb 'give' 'pay' 'offer' 'feed'
* held 'to' creature -> Give
* creature held -> Give reverse
* 'over' held 'to' creature -> Give;
Verb 'show' 'present' 'display'
* creature held -> Show reverse
* held 'to' creature -> Show;
[ ADirection; if (noun in compass) rtrue; rfalse; ];
Verb 'go' 'walk' 'run'
* -> VagueGo
* noun=ADirection -> Go
* noun -> Enter
* 'into'/'in'/'inside'/'through' noun
-> Enter;
Verb 'leave'
* -> VagueGo
* noun=ADirection -> Go
* noun -> Exit
* 'into'/'in'/'inside'/'through' noun
-> Enter;
Verb 'inventory' 'inv' 'i//'
* -> Inv
* 'tall' -> InvTall
* 'wide' -> InvWide;
Verb 'look' 'l//'
* -> Look
* 'at' noun -> Examine
* 'inside'/'in'/'into'/'through' noun
-> Search
* 'under' noun -> LookUnder
* 'up' topic 'in' noun -> Consult;
Verb 'consult' * noun 'about' topic -> Consult
* noun 'on' topic -> Consult;
Verb 'open' 'unwrap' 'uncover' 'undo'
* noun -> Open
* noun 'with' held -> Unlock;
Verb 'close' 'shut' 'cover'
* noun -> Close
* 'up' noun -> Close
* 'off' noun -> SwitchOff;
Verb 'enter' 'cross'
* -> GoIn
* noun -> Enter;
Verb 'sit' 'lie'
* 'on' 'top' 'of' noun -> Enter
* 'on'/'in'/'inside' noun -> Enter;
Verb 'in' 'inside'
* -> GoIn;
Verb 'exit' 'out' 'outside'
* -> Exit;
Verb 'examine' 'x//' 'watch' 'describe' 'check'
* noun -> Examine;
Verb 'read'
* noun -> Examine
* 'about' topic 'in' noun -> Consult
* topic 'in' noun -> Consult;
Verb 'yes' 'y//'
* -> Yes;
Verb 'no'
* -> No;
Verb 'sorry'
* -> Sorry;
Verb 'shit' 'fuck' 'damn' 'sod'
* -> Strong
* topic -> Strong;
Verb 'bother' 'curses' 'drat' 'darn'
* -> Mild
* topic -> Mild;
Verb 'search'
* noun -> Search;
Verb 'wave'
* -> WaveHands
* noun -> Wave;
Verb 'set' 'adjust'
* noun -> Set
* noun 'to' special -> SetTo;
Verb 'pull' 'drag'
* noun -> Pull;
Verb 'push' 'move' 'shift' 'clear' 'press'
* noun -> Push
* noun noun -> PushDir
* noun 'to' noun -> Transfer;
Verb 'turn' 'rotate' 'twist' 'unscrew' 'screw'
* noun -> Turn
* noun 'on' -> Switchon
* noun 'off' -> Switchoff
* 'on' noun -> Switchon
* 'off' noun -> Switchoff;
Verb 'switch'
* noun -> Switchon
* noun 'on' -> Switchon
* noun 'off' -> Switchoff
* 'on' noun -> Switchon
* 'off' noun -> Switchoff;
Verb 'lock'
* noun 'with' held -> Lock;
Verb 'unlock'
* noun 'with' held -> Unlock;
Verb 'attack' 'break' 'smash' 'hit' 'fight' 'wreck' 'crack'
'destroy' 'murder' 'kill' 'torture' 'punch' 'thump'
* noun -> Attack;
Verb 'wait' 'z//'
* -> Wait;
Verb 'answer' 'say' 'shout' 'speak'
* topic 'to' creature -> Answer;
Verb 'tell'
* creature 'about' topic -> Tell;
Verb 'ask'
* creature 'about' topic -> Ask
* creature 'for' noun -> AskFor;
Verb 'eat'
* held -> Eat;
Verb 'sleep' 'nap'
* -> Sleep;
Verb 'peel'
* noun -> Take
* 'off' noun -> Take;
Verb 'sing'
* -> Sing;
Verb 'climb' 'scale'
* noun -> Climb
* 'up'/'over' noun -> Climb;
Verb 'buy' 'purchase'
* noun -> Buy;
Verb 'squeeze' 'squash'
* noun -> Squeeze;
Verb 'swim' 'dive'
* -> Swim;
Verb 'swing'
* noun -> Swing
* 'on' noun -> Swing;
Verb 'blow'
* held -> Blow;
Verb 'pray'
* -> Pray;
Verb 'wake' 'awake' 'awaken'
* -> Wake
* 'up' -> Wake
* creature -> WakeOther
* creature 'up' -> WakeOther
* 'up' creature -> WakeOther;
Verb 'kiss' 'embrace' 'hug'
* creature -> Kiss;
Verb 'think'
* -> Think;
Verb 'smell' 'sniff'
* -> Smell
* noun -> Smell;
Verb 'hear' 'listen'
* -> Listen
* noun -> Listen
* 'to' noun -> Listen;
Verb 'taste'
* noun -> Taste;
Verb 'touch' 'fondle' 'feel' 'grope'
* noun -> Touch;
Verb 'rub' 'shine' 'polish' 'sweep' 'clean' 'dust' 'wipe' 'scrub'
* noun -> Rub;
Verb 'tie' 'attach' 'fasten' 'fix'
* noun -> Tie
* noun 'to' noun -> Tie;
Verb 'burn' 'light'
* noun -> Burn
* noun 'with' held -> Burn;
Verb 'drink' 'swallow' 'sip'
* noun -> Drink;
Verb 'fill'
* noun -> Fill;
Verb 'cut' 'slice' 'prune' 'chop'
* noun -> Cut;
Verb 'jump' 'skip' 'hop'
* -> Jump
* 'over' noun -> JumpOver;
Verb 'dig' * noun -> Dig
* noun 'with' held -> Dig;
! ----------------------------------------------------------------------------
! This routine is no longer used here, but provided to help existing games
! which use it as a general parsing routine:
[ ConTopic w; consult_from = wn;
do w=NextWordStopped();
until (w==-1 || (w=='to' && action_to_be==##Answer));
wn--;
consult_words = wn-consult_from;
if (consult_words==0) return -1;
if (action_to_be==##Ask or ##Answer or ##Tell)
{ w=wn; wn=consult_from; parsed_number=NextWord();
if (parsed_number=='the' && consult_words>1) parsed_number=NextWord();
wn=w; return 1;
}
return 0;
];
! ----------------------------------------------------------------------------
! Final task: provide trivial routines if the user hasn't already:
! ----------------------------------------------------------------------------
#Stub TimePasses 0;
#Stub Amusing 0;
#Stub DeathMessage 0;
#Stub DarkToDark 0;
#Stub NewRoom 0;
#Stub LookRoutine 0;
#Stub AfterLife 0;
#Stub GamePreRoutine 0;
#Stub GamePostRoutine 0;
#Stub AfterPrompt 0;
#Stub BeforeParsing 0;
#Stub PrintTaskName 1;
#Stub InScope 1;
#Stub UnknownVerb 1;
#Stub PrintVerb 1;
#Stub ParserError 1;
#Stub ParseNumber 2;
#Stub ChooseObjects 2;
#IFNDEF PrintRank;
Constant Make__PR;
#ENDIF;
#IFDEF Make__PR;
[ PrintRank; "."; ];
#ENDIF;
#IFNDEF ParseNoun;
Constant Make__PN;
#ENDIF;
#IFDEF Make__PN;
[ ParseNoun obj; obj=obj; return -1; ];
#ENDIF;
#Default Story 0;
#Default Headline 0;
#IFDEF INFIX;
#Include "infix";
#ENDIF;
! ----------------------------------------------------------------------------